﻿//////////////////////////////////////////////////////////////////////////////
//
// Copyright © 1998-2024 Glodon Company Limited.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the “Software”),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//////////////////////////////////////////////////////////////////////////////
//名称保证应用程序内唯一
#define ID_PAGE_API_(ITEM)          ITEM

namespace Sample
{
    //page
    const std::wstring ID_PAGE_FILE = L"FilePage";
    const std::wstring ID_PAGE_MODEL = L"ModelPage";
    const std::wstring ID_PAGE_MODULE = L"ModuleLabPage";

    //group
    const std::wstring ID_GROUP_INOUT = L"InOutGroup";
    const std::wstring ID_GROUP_ELEMENT = L"ElementGroup";
    const std::wstring ID_GROUP_UISETTINGS = L"UISettingsGroup";
    const std::wstring ID_GROUP_MODULE = L"ModuleLabGroup";
    const std::wstring ID_GROUP_MODULE_PICK_CONTEXT = L"ModuleLabConextualPickGroup";
    const std::wstring ID_GROUP_MODULE_SNAP_CONTEXT = L"ModuleLabConextualSnapGroup";

    //状态栏
    const std::wstring ID_STATUS_BAR_PANEL_PROMPT = L"StatusBarPanelPrompt";
    const std::wstring ID_STATUS_BAR_LABEL_PROMPT = L"StatusBarLabelPrompt";
    const std::wstring ID_STATUSBAR_LOCATOR_PANEL = L"StatusBarLocator";
    const std::wstring STATUSBAR_MOUSE_POSITON = L"StatusMousePosition";
    const std::wstring STATUSBAR_SELECTION_COUNT = L"StatusSelectedElementCount";


    //停靠
    const std::wstring DOCK_PAGE_ID_VIEW_MANAGEMENT = L"PageIdViewManagementDockPage";
    const std::wstring DOCK_PAGE_ID_FAMILY_MANAGEMENT = L"PageIdFamily";
    //资源管理器的标识名字
    const std::wstring DOCK_PAGE_NAME_VIEW_MANAGEMENT = L"ModelViewDocker";
    const std::wstring DOCK_PAGE_ID_PROPERTYPANEL = L"PropertyDocker";

    //文件
    const std::wstring ID_CMD_SAVE_FILE    = L"SaveFileCmd";
    const std::wstring ID_CMD_SAVE_FILE_AS = L"SaveFileAsCmd";
    const std::wstring ID_CMD_NEW_FILE     = L"NewFileCmd";
    const std::wstring ID_CMD_OPEN_FILE    = L"OpenFileCmd";
    const std::wstring ID_CMD_CLOSE_FILE   = L"CloseFileCmd";
    const std::wstring ID_CMD_UNDO = L"UndoCmd";
    const std::wstring ID_CMD_REDO = L"RedoCmd";
    const std::wstring ID_CMD_AUTHENTICATION = L"AuthenticationInfoCmd";
    constexpr auto ID_CMD_DISPATCH_IMPORT = L"DispatchImportCmd";
    constexpr auto ID_CMD_IMPORT_DWG = L"ImportFromDwgCmd";
    constexpr auto ID_CMD_IMPORT_SKETCHUP = L"ImportFromSketchUpCmd";

    const std::wstring ID_CMD_DISPATCH_EXPORT = L"DispatchExportCmd";
    const std::wstring ID_CMD_EXPORTTODWG = L"ExportToDwgCmd";
    const std::wstring ID_CMD_EXPORTTOPDF = L"ExportToPdfCmd";

    // 工作平面的命令
    const std::wstring ID_CMD_SETUP_WORK_PLANE_BY_PICK = L"SetupWorkPlaneByPickCmd";
    const std::wstring ID_CMD_SHOW_HIDE_WORK_PLANE = L"ShowHideWorkPlaneCmd";


    //TestCodeSnippets   
    const std::wstring ID_CMD_FAMILY_CREATE_INSTANCE = L"CmdIdCreateFamilyInstance";
    const std::wstring ID_CMD_FAMILY_RENAME = L"CmdIdRenameFamily";
    const std::wstring ID_CMD_FAMILY_EDIT = L"CmdIdEditFamily";
    const std::wstring ID_CMD_FAMILY_LOAD = L"CmdIdLoadFamily";
    const std::wstring ID_CMD_FAMILY_LOAD_SUB = L"CmdIdLoadSubFamily";
    const std::wstring ID_CMD_FAMILY_SAVE_AS = L"CmdIdSaveAsFamily";
    const std::wstring ID_CMD_FAMILY_REMOVE = L"CmdIdRemoveFamily";

    //HelloWorld
    const std::wstring ID_CMD_HELLOWORLD = L"HelloWorldCmd";
    const std::wstring ID_CMD_SETVIEWOPTION = L"SetViewOptionCmd";

    //绘制
    const std::wstring ID_LOAD_AND_CREATE_FAMILY_INSTANCE = L"LoadAndCreateFamilyInstanceCmd";

    const std::wstring ID_CMD_ZOOM_FIT = L"ZoomFitCmd";
    const std::wstring ID_CMD_CREATE_INSTANCE = L"CreateInstanceCmd";
    const std::wstring ID_CMD_CREATE_VIEWPORT = L"CreateViewPortCmd";
    //view
    const std::wstring COMMAND_VIEW_2D = L"CreateView2dCmd";
    const std::wstring COMMAND_VIEW_3D = L"CreateView3dCmd";
    const std::wstring COMMAND_DRAWINGLAYOUT = L"CreateDrawingLayoutCmd";
    const std::wstring COMMAND_VIEW_VERTICAL = L"CreateVerticalViewCmd";

    const std::wstring COMMAND_SELECT_SELECTOR = L"SelectorCmd";
    const std::wstring COMMAND_ELEMENT_ATTR = L"ElementAttributeCmd";
    const std::wstring COMMAND_FAMILY_CREATE_INSTANCE = L"CreateFamilyInstanceCmd";

    // 属性栏和资源管理器
    const std::wstring COMMAND_SHOW_HIDE_PROPERTY_PALETTE = L"ShowHidePropertyPaletteCmd";
    const std::wstring COMMAND_SHOW_HIDE_RESMANAGER = L"ShowHideResManagerCmd";
    const std::wstring LABEL_MODULE_LAB = L"MODULE_LAB";

    // 打开类型参数界面
    const std::wstring COMMAND_SHOW_TYPE_PARAMETERS = L"ShowTypeParametersCmd";

    // 其他
    const std::wstring ID_GROUP_SAMPLES_HELP = L"SamplesHelpGroup";
    const std::wstring ID_CMD_SAMPLES_HELP = L"SamplesHelpCmd";
    const std::wstring ID_CMD_SAMPLES_ABOUT_QT = L"SamplesAboutQtCmd";
}
